#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

//int main()
//{
//    //默认打开三个流文件， 就是为了让程序员默认进行输入输出代码编写
//    printf("stdin->fd:%d\n",stdin->_fileno);
//    printf("stdout->fd:%d\n",stdout->_fileno);
//    printf("stderr->fd:%d\n",stderr->_fileno);
//
//    FILE* fp = fopen("log.txt","w");
//    printf("fp->fd:%d\n",fp->_fileno);
//    
//    fclose(fp);
//    return 0;
//}


int main()
{
    //umask(0);//系统调用，修改权限掩码,  系统是002

    //默认open 不会清空文件，要加 O_TRUNC 截断
    //int fd = open("log.txt",O_WRONLY | O_CREAT | O_TRUNC,0666);//"w" 第二个参数是比特位方式传参,第三个参数权限
    int fda = open("loga.txt",O_WRONLY | O_CREAT | O_APPEND ,0666);//"a"
    int fdb = open("logb.txt",O_WRONLY | O_CREAT | O_APPEND ,0666);//"a"
    int fdc = open("logc.txt",O_WRONLY | O_CREAT | O_APPEND ,0666);//"a"
    int fdd = open("logd.txt",O_WRONLY | O_CREAT | O_APPEND ,0666);//"a"
    //if(fd < 0)
    //{
    //    perror("open");
    //    return 1;
    //}
    printf("fda = %d\n",fda);
    printf("fdb = %d\n",fdb);
    printf("fdc = %d\n",fdc);
    printf("fdd = %d\n",fdd);

    //操作文件
    //const char* msg = "aaaaa\n";
    //write(fd,msg,strlen(msg));//+1传入 '\0'
    //当我们向文件中写入C语言字符串时，不用strlen()+1,因为'\0'是C语言规定的，不是文件系统规定的

    close(fda);
    int fde = open("logc.txt",O_WRONLY | O_CREAT | O_APPEND ,0666);//"a"
    printf("fde = %d\n",fde);
    close(fdb);
    close(fdc);
    close(fdd);
    close(fde);

    return 0;
}





//#include <stdio.h>
// 
//int main()
//{
//    //"w"以写方式打开，如果文件不存在就创建,   会先清空文件内容,    echo > 重定向也是先清空文件 "w"方式
//    //没有指定路径，从当前目录查找
//    //FILE* fp = fopen("log.txt","w");
//    FILE* fp = fopen("log.txt","a");//追加方式打开,重文件结尾处开始写入。不会清空文件   echo >> 追加方式  "a"方式
//    if(fp == NULL)
//    {
//        perror("fopen");
//        return 1;//打开文件失败
//    }
//
//
//    const char* msg = "hello linux file\n";
//    fputs(msg,fp);
//
//    //int cnt = 10;
//    //while(cnt--)
//    //{
//    //    fputs(msg,fp);
//    //}
//    
//    fclose(fp);
//
//    return 0;
//}
